<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Java Matrix with Derivatives</title>
</head>

<body>

<h1 align="center"><font face="Arial" color="#0000FF">Java Tools</font></h1>
<p><font face="Arial">The Java Tools matrix is a two-dimensional program cube that is used to synthesize most of the Jak tools in AHEAD. 
The vertical axis is the Java Feature Model (which has derivatives), and the 
horizontal axis is the tool feature model.</font></p>
<p><font face="Arial">Rows of each matrix are language features {java, ast, 
gscope} and columns are tools { parser, jak2java, jampack, ... }.&nbsp; The 
exception is the grammar column.&nbsp; This column contains only grammar files 
which are composed to produce a single composite grammar.&nbsp; From this 
grammar, the <b>build/java/syntax</b> layer is generated, along with the parser for 
this grammar.&nbsp; As the <b>build/java/syntax </b>layer and parser are shared across 
all tools, it's represented by a separate column parser.&nbsp; (In effect, the 
grammar column derives the parser column).</font></p>
<h1 align="center"><font face="Arial" color="#0000FF">Java Matrix</font></h1>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="116%" height="298">
  <tr>
    <td width="25%" height="19">&nbsp;</td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    grammar</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    parser</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    support</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">sort</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    jak2java</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    jampack</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    mixin</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    mmatrix</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    unmixin</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    bcjak2java</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    jrename</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    antderive</font></td>
    <td width="10%" height="19"><font face="Arial" size="2" color="#0000FF">
    antcompose</font></td>
  </tr>
  <tr>
    <td width="25%" height="10" bgcolor="#00FF00">
    <font face="Arial" size="2" color="#0000FF">java</font></td>
    <td width="10%" height="10" bgcolor="#00FF00"><font face="Arial" size="2">
    dsl/java/JavaGram</font></td>
    <td width="10%" height="4" bgcolor="#00FF00"><font face="Arial" size="2">dsl/kernel
    <font color="#FF0000"><b>build/java/syntax<br>
    </b></font>dsl/java/Java</font></td>
    <td width="10%" height="4" bgcolor="#00FF00"><font face="Arial" size="2">dsl/java/Comments dsl/java/StringAST</font></td>
    <td width="10%" height="10" bgcolor="#00FF00"><font face="Arial" size="2">
    dsl/java/sortfd </font></td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00"><font face="Arial" size="2">
    &nbsp;dsl/java/linenum </font></td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
    <td width="10%" height="10" bgcolor="#00FF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="16" bgcolor="#FF00FF">
    <font face="Arial" size="2" color="#0000FF">ast</font></td>
    <td width="10%" height="16" bgcolor="#FF00FF"><font face="Arial" size="2">
    dsl/java/AstGram</font></td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF"><font face="Arial" size="2">dsl/java/ast</font></td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" bgcolor="#FF00FF"><font face="Arial" size="2">dsl/java/ast</font></td>
    <td width="10%" bgcolor="#FF00FF"><font face="Arial" size="2">dsl/java/astError</font></td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
    <td width="10%" height="16" bgcolor="#FF00FF">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="16"><font face="Arial" size="2" color="#0000FF">
    gscope</font></td>
    <td width="10%" height="16"><font face="Arial" size="2">dsl/java/GscopeGram</font></td>
    <td width="10%" height="16"></td>
    <td width="10%" height="16"></td>
    <td width="10%" height="16"></td>
    <td width="10%" height="16"><font face="Arial" size="2">dsl/java/gscope</font></td>
    <td width="10%" height="16"><font face="Arial" size="2">dsl/java/preprocessGscope</font></td>
    <td width="10%" height="16"></td>
    <td width="10%" height="16"><font face="Arial" size="2">dsl/java/mmGscope</font></td>
    <td width="10%" height="16"></td>
    <td width="10%" height="16"><font face="Arial" size="2">dsl/java/gscope</font></td>
    <td width="10%" height="16"><font face="Arial" size="2">dsl/java/gscopeError</font></td>
    <td width="10%" height="16"></td>
    <td width="10%" height="16"></td>
  </tr>
  <tr>
    <td width="25%" height="57" bgcolor="#FFFF00">
    <font face="Arial" size="2" color="#0000FF">base</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/AheadGram</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="57" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="57" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">&nbsp;dsl/java/j2jBase</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/CommonBase dsl/java/CommonError dsl/java/preprocess</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/CommonBase dsl/java/CommonError<br>
    dsl/java/mixinbase</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/Basemm</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/unmixinbase</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/bcAhead</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/jrenBase</font></td>
    <td width="10%" height="57" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="57" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#FFFF00">
    <font face="Arial" size="2" color="#0000FF">d(base)/d(ast)</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/j2jast</font></td>
    <td width="10%" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/CommonErrorAst</font></td>
    <td width="10%" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/CommonErrorAst</font></td>
    <td width="10%" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/mmAst</font></td>
    <td width="10%" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/unmixinbaseAst</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#FFFF00">
    <font face="Arial" size="2" color="#0000FF">source</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/SourceGram</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/SourceError</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/SourceMM</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/SourceError</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#FFFF00">
    &nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#FFFF00">
    <font face="Arial" size="2" color="#0000FF">local-id</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LocalIdGram</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LocalIdError</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LocalId</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LocalId</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LocalIdError</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LocalIdError</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#FFFF00">
    <font face="Arial" size="2" color="#0000FF">d(local-id)<br>
    /d(ast)</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/LocalIdAst</font></td>
    <td width="10%" bgcolor="#FFFF00"><font face="Arial" size="2">dsl/java/LocalIdAst</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#FFFF00">
    <font face="Arial" size="2" color="#0000FF">layer</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/LayerGram</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/AspectTrans</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/AspectDecl</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/AspectDecl</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/bcLayer</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00"><font face="Arial" size="2">
    dsl/java/layerError</font></td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#FFFF00">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="19" bgcolor="#00FFFF">
    <font face="Arial" size="2" color="#0000FF">sm</font></td>
    <td width="10%" height="19" bgcolor="#00FFFF"><font face="Arial" size="2">
    dsl/java/SmGram</font></td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF"><font face="Arial" size="2">&nbsp;dsl/java/sm5</font></td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF"><font face="Arial" size="2">
    dsl/java/sm5 dsl/java/bcsm5</font></td>
    <td width="10%" height="19" bgcolor="#00FFFF"><font face="Arial" size="2">
    dsl/java/smError</font></td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
    <td width="10%" height="19" bgcolor="#00FFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="38" bgcolor="#C0C0C0">
    <font face="Arial" size="2" color="#0000FF">compose-class</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/ClassXGram</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/j2jClassx</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/CompClass</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/mixinClass</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">&nbsp;dsl/java/Classmm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/unmixinclass</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/bcClassx</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/ClassxError</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="38" bgcolor="#C0C0C0">
    <font face="Arial" size="2" color="#0000FF">d(compose-class)/d(ast)</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">dsl/java/CompClassAst</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="38" bgcolor="#C0C0C0">
    <font face="Arial" size="2" color="#0000FF">compose-int</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/IntXGram</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/j2jIntx</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/CompInt</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/mixinInt</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/Intmm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/unmixinint</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">&nbsp;dsl/java/bcIntx</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/IntxError<br>
&nbsp;</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="38" bgcolor="#C0C0C0">
    <font face="Arial" size="2" color="#0000FF">compose-sm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/SmXGram</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">&nbsp;dsl/java/j2jSmx</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/CompSm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/mixinSm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/Sm2mm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">&nbsp;dsl/java/unmixinsm</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/bcSmx</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0"><font face="Arial" size="2">
    dsl/java/SmxError</font></td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
    <td width="10%" height="38" bgcolor="#C0C0C0">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%" height="10"><font face="Arial" size="2" color="#0000FF">ant</font></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"></td>
    <td width="10%" height="10"><font face="Arial" size="2">dsl/support/antDerive</font></td>
    <td width="10%" height="10"><font face="Arial" size="2">dsl/support/antCompose</font></td>
  </tr>
</table>
<h1><font face="Arial" color="#0000FF">Synthesizing Tools</font></h1>
<p><font face="Arial">A tool is synthesized by specifying 3 equations, one per 
dimension.&nbsp; As it turns out, two of the dimensions of this matrix are 
identical.&nbsp; That is, the dimensions of this matrix are language x tools x 
language.&nbsp; So only 2 equations are needed to specify any particular tool.</font></p>
<p><font face="Arial">Only 3 language equations are currently supported:</font></p>
<ol>
  <li><font face="Arial">all = java AST BASE sm COMPOSE compose-sm ant</font></li>
  <li><font face="Arial">cat = java BASE sm COMPOSE compose-sm ant</font></li>
  <li><font face="Arial">utcs = java AST BASE COMPOSE ant</font></li>
</ol>
<p><font face="Arial">where AST, BASE, and COMPOSE are local variables:</font></p>
<ul>
  <li><font face="Arial">AST = ast gscope</font></li>
  <li><font face="Arial">BASE = base d(base)/d(ast) source local-id d(local-id)/d(ast) layer</font></li>
  <li><font face="Arial">COMPOSE = compose-class d(compose-class)/d(ast) compose-int</font></li>
</ul>
<p><font face="Arial">The default language is &quot;all&quot;.</font></p>
<p><font face="Arial">Seven tools are currently being built.&nbsp; Their 
equations are:</font></p>
<ol>
  <li><font face="Arial">jak2javaTool = parser support sort jak2java antderive</font></li>
  <li><font face="Arial">jampackTool&nbsp; = parser support sort jampack 
  antcompose</font></li>
  <li><font face="Arial">mixinTool&nbsp;&nbsp; = parser support mixin antcompose</font></li>
  <li><font face="Arial">mmatrixTool&nbsp; = parser mmatrix antderive</font></li>
  <li><font face="Arial">unmixinTool&nbsp; = parser support unmixin antderive</font></li>
  <li><font face="Arial">bcjak2javaTool&nbsp; = parser support sort bcjak2java 
  antderive</font></li>
  <li><font face="Arial">jrenameTool&nbsp; = parser support&nbsp; jrename 
  antderive</font></li>
</ol>
<p><font face="Arial">To see the fully expanded equations, look in 
fop/ahead/build/java/tools.equations.</font></p>

</body>

</html>